package com.bjsxt.userCenter.common.util;

import java.rmi.dgc.DGC;

import org.apache.commons.codec.digest.DigestUtils;

/**
 * 加密的工具类
 * @author BlackMA
 *
 */
public class EncryUtil
{
	/**
	 * 加密规则(加密算法$随机数$加密(加密算法$随机数$明文))
	 * @param souStr 需要加密的字符串
	 * @return
	 */
	public static String doEncry(String souStr)
	{
		//加密前置字符串
		String headStr = "sha256$"+RegexUtil.getRandom(32)+"$";
		//加密后字符串
		String backStr = DigestUtils.sha256Hex(headStr+souStr);
		
		return headStr+backStr;
	}
	
	/**
	 * 
	 * @param souStr 加密前密码
	 * @param encryStr 存入数据库密码
	 * @return
	 */
	public static boolean checkPassword(String souStr,String encryStr)
	{
		String split[] = encryStr.split("\\$");
		String headStr = split[0]+"$"+split[1]+"$";
		String backStr = headStr+DigestUtils.sha256Hex(headStr+souStr);
		if(backStr.equals(encryStr))
		{
			return true;
		}
		return false;
	}
	
	public static void main(String[] args)
	{
		String result = doEncry("111111");
		System.out.println(checkPassword("111111", result));
	}
}
